/*
鸡兔同笼问题：
	笼子中共有a个头，b条腿，求鸡、兔各有几只。
*/
	
#include<iostream>
using namespace std;

// 解法1
void solve1(int a, int b)
{
	// 已知鸡、兔一共a只，列出所有情况
	for(int x=0; x<=a; x++)
		for(int y=0; y<=a; y++)
		{
			// x为鸡的数量、y为兔的数量
			if(x+y==a && 2*x+4*y==b)
				printf("x=%d,y=%d\n",x,y);
		}
}

// 解法2
void solve2(int a,int b)
{
	// 缩小列举范围
	for(int x=0; x<=min(a, b/2); x++)
		for(int y=0; y<=min(a, b/4); y++)
		{
			if(x+y==a && 2*x+4*y==b)
				printf("x=%d,y=%d\n",x,y);
		}
}

int main()
{
	// 假设头的数量、腿的数量
	int a=3, b=8;
	
	// 求鸡、兔的个数
	solve2(a, b);
	
	return 0;
}
